/*
*	Project: Aethon
*
*	File: Animator.h
*
*	Author: Robert Whiting
*
*	Date: 2/17/2009
*
*	Purpose: The animator controls the movement of any sentient
*	entity in the game, this will usually mean the player
*/

#ifndef ANIMATOR_H_
#define ANIMATOR_H_

#include "../include/vector3f.h"
#include "../include/frame.h"
#include "../include/Timer.h"
#include <vector>
#include <map>
#include <queue>
using namespace std;
static map< string, vector<frame> > movements;

class Animator{
	
	float startTime;
	float totalTime;

	Timer *time;
	
	vector<vector3f> deltaVector; //change array
	frame startFrame;
	queue<frame> frameQueue;
	
	public:
	Animator(){
	}//end constructor
	
	void init();
	void loadFrame(void);
	vector3f generateDelta(vector3f source, vector3f target);
	frame update(void);
	void loadMovement(string filename);
	void interruptMovement(string movementName);
	void pushMovement(string movementName);
  	
};

#endif //ANIMATOR_H_

